﻿using System;
using System.Collections.Generic;

namespace SharpSqlAnalyzer.nodes
{
	// Token: 0x02000299 RID: 665
	public class TConstant : TParseTreeNode
	{
		// Token: 0x17000408 RID: 1032
		// (get) Token: 0x06001582 RID: 5506 RVA: 0x00326292 File Offset: 0x00324492
		// (set) Token: 0x06001583 RID: 5507 RVA: 0x0032629A File Offset: 0x0032449A
		public TTypeName CastType
		{
			get
			{
				return this._castType;
			}
			set
			{
				this._castType = value;
			}
		}

		// Token: 0x06001584 RID: 5508 RVA: 0x003262A3 File Offset: 0x003244A3
		public void setNodeType(int nt)
		{
			this.NodeType = nt;
		}

		// Token: 0x06001585 RID: 5509 RVA: 0x003262AC File Offset: 0x003244AC
		public void setSign(TSourceToken st)
		{
			this._sign = st;
		}

		// Token: 0x06001586 RID: 5510 RVA: 0x003262B5 File Offset: 0x003244B5
		public TConstant()
		{
		}

		// Token: 0x06001587 RID: 5511 RVA: 0x003262BD File Offset: 0x003244BD
		public TConstant(ELiteralType pLiteralType)
		{
			this._literalType = pLiteralType;
		}

		// Token: 0x06001588 RID: 5512 RVA: 0x003262CC File Offset: 0x003244CC
		public TConstant(ELiteralType pLiteralType, TSourceToken valueToken)
		{
			this._literalType = pLiteralType;
			this._valueToken = valueToken;
			this._stringValue = valueToken.ToString();
			base.endToken = valueToken;
			base.startToken = valueToken;
		}

		// Token: 0x17000409 RID: 1033
		// (get) Token: 0x06001589 RID: 5513 RVA: 0x003262FC File Offset: 0x003244FC
		public virtual ELiteralType LiteralType
		{
			get
			{
				return this._literalType;
			}
		}

		// Token: 0x1700040A RID: 1034
		// (get) Token: 0x0600158B RID: 5515 RVA: 0x0032630D File Offset: 0x0032450D
		// (set) Token: 0x0600158A RID: 5514 RVA: 0x00326304 File Offset: 0x00324504
		public virtual List<TConstant> StringLiteralSequence
		{
			get
			{
				return this._stringLiteralSequence;
			}
			set
			{
				this._stringLiteralSequence = value;
			}
		}

		// Token: 0x1700040B RID: 1035
		// (get) Token: 0x0600158D RID: 5517 RVA: 0x0032631E File Offset: 0x0032451E
		// (set) Token: 0x0600158C RID: 5516 RVA: 0x00326315 File Offset: 0x00324515
		public virtual TSourceToken Sign
		{
			get
			{
				return this._sign;
			}
			set
			{
				this._sign = value;
			}
		}

		// Token: 0x0600158E RID: 5518 RVA: 0x00326326 File Offset: 0x00324526
		public virtual void setvalueToken(TSourceToken st)
		{
			this._valueToken = st;
		}

		// Token: 0x0600158F RID: 5519 RVA: 0x0032632F File Offset: 0x0032452F
		public virtual TSourceToken getvalueToken()
		{
			return this._valueToken;
		}

		// Token: 0x06001590 RID: 5520 RVA: 0x00326337 File Offset: 0x00324537
		public override void accept(TParseTreeVisitor v)
		{
			v.preVisit(this);
			v.postVisit(this);
		}

		// Token: 0x06001591 RID: 5521 RVA: 0x00326347 File Offset: 0x00324547
		public override void acceptChildren(TParseTreeVisitor v)
		{
			v.preVisit(this);
			v.postVisit(this);
		}

		// Token: 0x06001592 RID: 5522 RVA: 0x00326357 File Offset: 0x00324557
		public override void init(object arg1)
		{
			this._literalType = (ELiteralType)arg1;
		}

		// Token: 0x06001593 RID: 5523 RVA: 0x00326368 File Offset: 0x00324568
		public override void init(object arg1, object arg2)
		{
			if (arg1 is ELiteralType)
			{
				this._literalType = (ELiteralType)arg1;
				this._valueToken = (TSourceToken)arg2;
				this._stringValue = this._valueToken.ToString();
				return;
			}
			this._charSetName = (TSourceToken)arg1;
			this._char_String_SetLiteral = (TSourceToken)arg2;
			TSourceToken charSetName = this._charSetName;
			string str = (charSetName != null) ? charSetName.ToString() : null;
			string str2 = " ";
			TSourceToken char_String_SetLiteral = this._char_String_SetLiteral;
			this._stringValue = str + str2 + ((char_String_SetLiteral != null) ? char_String_SetLiteral.ToString() : null);
		}

		// Token: 0x04001736 RID: 5942
		private TTypeName _castType;

		// Token: 0x04001737 RID: 5943
		private TSourceToken _valueToken;

		// Token: 0x04001738 RID: 5944
		private TSourceToken _charSetName;

		// Token: 0x04001739 RID: 5945
		private TSourceToken _char_String_SetLiteral;

		// Token: 0x0400173A RID: 5946
		private List<TConstant> _stringLiteralSequence;

		// Token: 0x0400173B RID: 5947
		private ELiteralType _literalType;

		// Token: 0x0400173C RID: 5948
		private TSourceToken _sign;
	}
}
